package com.xiangge.demo;

import java.util.Arrays;

/*
     数组的知识点的补充：
        1. 数组中常见的两个小问题：
             -- 数组索引越界异常： java.lang.ArrayIndexOutOfBoundsException
                  原因： 使用索引访问的数组中的元素时,索引超过数组索引的合法范围
                  解决： 通过索引访问数组中的元素时，保证索引在合法范围内才行
              -- 空指针异常： java.lang.NullPointerException
                  原因：  对象.属性、方法时, 对象是null
                  解决： 1. 让对象不为null   2. 做非空校验
          2. 可变参数：
                格式： 数据类型... 参数名称
                例如： int... arr
                使用场景： 在方法的形式参数列表中使用
                如何使用?  调用带有可变参数的方法时，传入的参数个数可以是任意个，只要参数符合数据类型即可
                注意事项： 可变参数必须在参数列表的最后
            3. main方法的形参： 了解
                  需求：让main运行时, args参数有值
 */
public class ArrayDemo1 {
    public static void main(String[] args) {
        // 查看main的参数args的内容
        System.out.println(Arrays.toString(args)); // []
    }
    public static void main2(String[] args) {
        int a = 10 , b = 20 , c = 30 , d = 40;
        // 求a和b的和
        int sum1 = getSum(a, b);
        System.out.println("sum1 = " + sum1);
        // 求a , b , c的和
        int sum2 = getSum(a, b, c);
        System.out.println("sum2 = " + sum2);
        int sum = getSum(0, 90, 18, 67, 88);
    }
    // 定义整数求和的方法
    // 书写一个通用的求整数和的方法,适用于任意个数的整数
    public static int getSum(int sum,int... arr){ // 1. 根据传入的参数的个数创建一个数组  2. 将传入的参数按照传入的顺序从前往后存入数组中
        System.out.println("您传入的参数的个数为:" + arr.length);
        for (int element : arr) {
            sum = sum + element;
        }
        return sum;
    }

    // 两个整数求和
  /*  public static int getSum(int a , int b){
        return  a + b;
    }
    // 三个整数求和
    public static int getSum(int a , int b , int c){
        return  a + b + c;
    }

    public static int getSum(int a , int b , int c , int d){
        return  a + b + c + d;
    }*/
    public static void main1(String[] args) {
        int[] arr = null;

        if(arr == null){
            System.err.println("arr数组对象不能为空！");
            return;
        }
        System.out.println(arr.length);

//        System.out.println(arr[0]); // 1
//        System.out.println(arr[1]); // 2
//        System.out.println(arr[2]); // 3
//        System.out.println(arr[3]); // 4
//        System.out.println(arr[4]); // 5
    }

}
